//***************************************************************************************

//                利用canny算子实现边缘检测-其中canny边缘低阈值为100，高阈值为200

//***************************************************************************************
#include "ImageDecMat.hpp"

void ImageDecMat::on_edgeDetector(cv::Mat Image1,cv::Mat& Image2)
{
    cv::Mat srcImage,edgeImage,dstImage;
    Image1.copyTo(srcImage);
    //平滑降噪
    blur(srcImage,edgeImage,cv::Size(3,3));
    //Canny算法边缘检测
    Canny(edgeImage,edgeImage,150,200,3);
    //将输出图像内所有元素置为0
    dstImage=cv::Scalar::all(0);
    //使用Canny算子输出的边缘图edgeImage作为掩码，将原图像srcImage拷到目标图dstImage中
    srcImage.copyTo(dstImage,edgeImage);
    //显示目标图
    dstImage.copyTo(Image2);
}
